1. Field of the Invention
This invention relates to computer systems and, more particularly, to query systems.
2. Description of the Related Art
Computer systems are often configured to process large quantities of information stored in databases. For example, commercial enterprises may collect and maintain numerous data items pertaining to customers, suppliers, regulatory agencies, internal business processes, and many other entities. Such data may include contact information, financial data, inventory, production schedules, and other data of interest. To manipulate and extract such data, a computer system configured to implement database functionality such as query evaluation may be provisioned.
As both the quantity of data being managed by a given database and user demand for database services grow, multiple computer systems may be provisioned to share the burden of managing data and responding to user query requests. For example, in one embodiment a database may be partitioned among several server computer systems, such that each system stores a unique portion of the database. In such an embodiment, query requests may be received and allocated to the computer systems in a round-robin fashion, without regard to the content of the requests. However, if the database is partitioned, a given server may receive a query that requests data that is not in the unique portion of the database stored on that given server. Consequently, the query may need to be forwarded to a server that does possess the requested data, which may incur processing and network propagation delay that may generally slow the processing of that query.
Additionally, in some embodiments the provisioned server systems may not be equivalent in their processing resources, such that sending a query to a given server without accounting for query complexity may result in suboptimal use of server resources. For example, the round-robin algorithm might result in sending a complex query to a slower server while a faster server remains idle.